package simulador;

import java.util.LinkedList;

public class MapaEstados {

	private LinkedList<Estado> estados=new LinkedList<Estado>();
	private Estado estadoAtual;
	private Estado estadoInicial;
	private Estado estadoVazio;
	
	public void cleanAll()
	{
		estadoAtual=null;
		estadoInicial=null;
		estadoVazio=null;
		
		estados.clear();
	}
	
	public Estado getEstadoAtual() {
		return estadoAtual;
	}
	
	public void setEstadoAtual(Estado estadoAtual) {
		this.estadoAtual = estadoAtual;
	}
	
	public Estado getEstadoInicial() {
		return estadoInicial;
	}
	
	public void setEstadoInicial(Estado estadoInicial) {
		this.estadoInicial = estadoInicial;
	}
	
	public Estado getEstadoVazio() {
		return estadoVazio;
	}
	
	public void setEstadoVazio(Estado estadoVazio) {
		this.estadoVazio = estadoVazio;
	}
	
	public void addEstado(Estado estado)
	{
		estados.add(estado);
	}
	
	public Estado getEstadoFromRotulo(String rotulo)
	{
		Estado estado=null;
		
		for(int i=0;i<estados.size();i++)
		{
			if(estados.get(i).getRotulo().equals(rotulo))
			{
				estado=estados.get(i);
			}
		}
		
		if(estado==null && estadoInicial.getRotulo().equals(rotulo))
		{
			estado=estadoInicial;
		}
		
		if(estado==null && estadoVazio.getRotulo().equals(rotulo))
		{
			estado=estadoVazio;
		}
		
		return estado;
	}
}
